/*
 * Copyright (c) 2023 OceanBase.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.oceanbase.odc.service.iam.auth;

import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Service;

import com.oceanbase.odc.core.authority.exception.AccessDeniedException;
import com.oceanbase.odc.core.authority.util.SkipAuthorize;
import com.oceanbase.odc.core.shared.constant.OrganizationType;
import com.oceanbase.odc.service.iam.model.User;

/**
 * @author yizhou.xw
 * @version : ClientModeAuthenticationFacadeImpl.java, v 0.1 2021-08-24 13:33
 */
@Profile("clientMode")
@Service
@SkipAuthorize
public class DesktopAuthenticationFacade extends DefaultAuthenticationFacade {
    @Override
    public User currentUser() throws AccessDeniedException {
        User user = User.of(0L);
        user.setOrganizationId(1L);
        user.setAccountName("odc_desktop_user@oceanbase.com");
        user.setName("odc_desktop_user");
        user.setActive(true);
        user.setEnabled(true);
        user.setOrganizationType(OrganizationType.INDIVIDUAL);
        return user;
    }
}
